Selene Shepard поделилась ссылкой
30 октября 2013 года, 14:15
#11570: Спроси о море у рыбака
В силу своей профессиональной деятельности пришлось писать инжектор текстового слоя в PDF. Задачка проста: есть PDF, состоящий из сканов страниц; под эти картинки надо подложить распознанный текст, чтобы поиск работал.

Первым этапом надо было написать парсер PDF. Скачали спецификацию и набрали тестовую базу — аж 200 тысяч PDF-файлов. Итог всей этой опупеи был таков: 30–35% тестовой базы не соответствует спецификации PDF, но 95% открывается в Adobe Reader без проблем. Поэтому парсер писали не по спецификации, а по результатам тестов. Если Ридер открыл, то и мы должны открыть. Почему? А ты объясни юзеру, что данный файл не соответствует пункту 5.5.7 спецификации PDF 1.6. И так каждому юзеру по каждому файлу 100500 раз в день.

После этой задачки стали играть c открытием PDF на других ОС. Что делать — продукт кроссплатформенный. Под маком Preview валился как раз на генерации превью-картинки на корейском PDF, а под юниксом Ghost давал очаровательные психоделические разводы на всю страницу, если файл содержал картинки в формате JPEG-2000 и кодеке JasPer. И это не всё, а только что, что вспоминается на раз.

«О море надо спрашивать у рыбака», — гласит японская мудрость. То есть у тех, кто в теме. Таки вот: на сегодняшний день PDF-файл — это то, что открывает Adobe Reader, RTF — то, что открывает Word, а HTML — то, что открывается в IE и Firefox. 40% интернет-страниц, кстати, имеют несбалансированные теги и, по идее, не должны открываться в принципе. Поэтому ничего удивительного, что человек из недавней истории справился cо своим PDF только на винде. Смешно как раз морали про PDF читать.